package com.crm.system.service.cluePoolManager;

import com.crm.common.model.DhPageInfo;
import com.crm.model.entity.cluePoolManager.CluePoolPublic;
import com.crm.model.entity.sys.UserAccount;
import com.crm.model.qo.cluePoolManager.CluePoolQO;
import com.crm.model.vo.cluePoolManager.CluePoolVO;

/**
 * @author yincuimei
 * @Date 2020/12/25 9:56
 */
public interface CluePoolFormService {

    /**
     * 管理系统(超级管理员)线索管理--线索公海表单
     *    展示：所有管理模块创建的私有池、分公司公有池、全国公有池未删除的线索池;用户模块创建的未删除的个人池
     *    操作:私有池、分公司公有池、全国公有池能修改、删除、停用/启用线索池;个人池不能修改、删除、没有停用/启用线索池操作
     * @param cluePoolQO           ---线索公海表单查询条件
     * @param pageIndex/ pageSize  ---页码、分页大小
     * @param sortName/sortOrder   ---线索公海表单排序字段及规则
     * @author yincuimei
     * @return
     */
    DhPageInfo<CluePoolVO> selectAllCluePoolList(CluePoolQO cluePoolQO,Integer pageIndex, Integer pageSize,  String sortName, String sortOrder);

    /**
     * 管理系统(普通管理员)线索管理--线索公海表单
     *    展示： 全国池未删除的线索池;创建的所选分公司未删除的分公司公有池;本公司创建的未删除的私有池;本公司创建的个人池
     *    操作: 全国池不能修改、删除、停用/启用线索池;
     *         创建时所选的分公司未删除的分公司的公有池能修改、删除、停用/启用;
     *         本公司创建的未删除的私有池:其中自己创建的私有池能修改、删除、停用/启用; 在权限与详情那配置管理组权限的人能修改、删除、停用/启用,否则只能查看;
     *         个人池不能操作
     * @param cluePoolQO           ---线索公海表单查询条件
     * @param pageIndex/ pageSize  ---页码、分页大小
     * @param sortName/sortOrder   ---线索公海表单排序字段及规则
     * @param userAccount          ---登录人信息
     * @author yincuimei
     * @return
     */
    DhPageInfo<CluePoolVO> selectNormalCluePoolList(CluePoolQO cluePoolQO,UserAccount userAccount,Integer pageIndex, Integer pageSize, String sortName, String sortOrder);


    /**
     * 线索管理(管理系统)--线索公海表单开启/停用线索池
     * @param poolId      ---线索池主键
     * @param poolState   ---线索池开启/停用状态
     * @author yincuimei
     * @return
     */
    Boolean updatePoolStateById(String poolId,Integer poolState);
}
